# -*- coding: utf-8 -*-
import sys
sys.path.append("../Model")
sys.path.append("../View")
from view_plot_data import CLS_View_Plot_Data
from modl_statistics import CLS_Modl_Values_Statistics

class CLS_Contlr_App_Plot():
	
	''' Controler -> Classe que trata os dados necessarios para desenhar os graficos'''
	
	def __init__(self, contlr_query):
		
		''' Constutor -> Recebe um objecto da classe do controler que tem as funçoes para as queries
			Ainda aqui, é criado um objecto da classe que vai tratar das listas para mostrar os graficos
		'''
		self.contlr_query = contlr_query
		global modl_stats, NUM_ZERO, NUM_UM
		modl_stats = CLS_Modl_Values_Statistics()


	def stats_query(self, curso, unidade):
		
		''' Controler -> Funcao que envia os dados para o model e recebe a info para visualizar o grafico
		var listas2 - lista com anos curso e quantidade de alunos
		var curso - curso escolhido
		var unidade - unidade organica escolhida
		'''
		NUM_ZERO = 0
		NUM_UM = 1
		lista2 = self.contlr_query.query2()
		lista_xy_plot1 = modl_stats.statistics_plot1(lista2, curso, unidade)
		#curso = unicode(curso, encoding='utf-8')
		self.funcModlAppPlot(curso, lista_xy_plot1[NUM_ZERO], NUM_ZERO, NUM_ZERO, lista_xy_plot1[NUM_UM], 'Nr. Alunos')
		
	def stats_query4(self, nivel, unidade):
		
		''' Controller -> Funcao que envia a lista e o nivel para o model e recebe a info para visualizar o grafico
		var contlr_query objecto que contem os metodos que efectuam as queries
		var nivel - nivel escolhido
		'''
		NUM_ZERO = 0
		NUM_UM = 1
		lista_unidades = self.contlr_query.query_get_unidades()
		lista4 = self.contlr_query.query4()
		lista_xy_plot2 = modl_stats.statistics_plot2(lista_unidades, lista4, nivel, unidade)
		self.funcModlAppPlot(nivel, lista_xy_plot2[NUM_ZERO], NUM_ZERO, NUM_ZERO, lista_xy_plot2[NUM_UM], 'Nr. Alunos')

	def funcModlAppPlot(self, inTitlePlot, inListNameX, inValueX, inListNameY, inValueY, inLabelY):
		
		'''  ->  '''

		self.strTitlePlot = inTitlePlot # titulo
		self.outListNameX = inListNameX	# x anos
		self.outValueX = inValueX		# 0
		self.outListNameY = inListNameY	# 0
		self.outValueY = inValueY		# y nr alunos
		self.outStrLabelY = inLabelY	# label (qnt alunos)

		plotImg = CLS_View_Plot_Data()

		runPlorImg = plotImg.funcViewPlotData(
			self.strTitlePlot, self.outListNameX, 
			self.outValueX,	self.outListNameY, 
			self.outValueY, self.outStrLabelY
			)
